class Solution {
//    public int jewelleryValue(int[][] frame) {
//        // 创建dp表、初始化、返回值
//
//        int m = frame.length, n = frame[0].length;
//        int[][] dp = new int[m][n];
//        // 将i==0和j==0的位置进行初始化
//        dp[0][0] = frame[0][0];
//        for (int i = 1; i < m; i++) {
//            dp[i][0] = frame[i][0] + dp[i-1][0];
//        }
//        for (int i = 1; i < n; i++) {
//            dp[0][i] = frame[0][i] + dp[0][i-1];
//        }
//
//        for (int i = 1; i < m; i++) {
//            for (int j = 1; j < n; j++) {
//                dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) + frame[i][j];
//            }
//        }
//
//        return dp[m-1][n-1];
//    }


    public int jewelleryValue(int[][] frame) {
        // 创建dp表、初始化、返回值

        int m = frame.length, n = frame[0].length;
        int[][] dp = new int[m+1][n+1];
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) + frame[i-1][j-1];
            }
        }

        return dp[m][n];
    }
}